package com.bbva.itradecomex.bo.impl;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bbva.itradecomex.bo.iface.ProductoComexBO;
import com.bbva.itradecomex.dao.iface.ProductoComexDAO;
import com.bbva.itradecomex.domain.DatosJFreeChart;
import com.bbva.itradecomex.domain.ProductoComexComparableResultado;
import com.bbva.itradecomex.domain.ProductoComexComparableResumen;
import com.bbva.itradecomex.domain.ProductoComexResultado;
import com.bbva.itradecomex.domain.ProductoComexResumen;
import com.bbva.itradecomex.form.ProductoComexBusquedaForm;
import com.bbva.itradecomex.util.Constantes;
import com.bbva.itradecomex.util.ITradexUtil;

@Service
public class ProductoComexBOImpl implements ProductoComexBO {

	@Autowired
	ProductoComexDAO productoComexDAO;

	@Override
	public List<ProductoComexResultado> getListPComexTrimestralImport()
			throws Exception {
		return formatListResumenPComex(productoComexDAO.getListPComexTrimestralResumenImp());
	}
	
	@Override
	public List<ProductoComexResultado> getListPComexTrimestralExport()
			throws Exception {
		return formatListResumenPComex(productoComexDAO.getListPComexTrimestralResumenExp());
	}

	@Override
	public List<ProductoComexResultado> getListPComexTrimestralImpExp()
			throws Exception {
		return formatListResumenPComex(productoComexDAO.getListPComexTrimestralResumenImpExp());
	}
	
	@Override
	public List<ProductoComexComparableResultado> getListPComexComparacionImport(ProductoComexBusquedaForm formulario)
			throws Exception {
		return formatListResumenPComexComp(productoComexDAO.getListPComexAnualResumenImpComp(formulario));
	}
	
	@Override
	public List<ProductoComexComparableResultado> getListPComexComparacionExport(ProductoComexBusquedaForm formulario)
			throws Exception {
		return formatListResumenPComexComp(productoComexDAO.getListPComexAnualResumenExpComp(formulario));
	}

	@Override
	public List<ProductoComexComparableResultado> getListPComexComparacionImpExp(ProductoComexBusquedaForm formulario)
			throws Exception {
		return formatListResumenPComexComp(productoComexDAO.getListPComexAnualResumenImpExpComp(formulario));
	}
	
	@Override
	public void setearTotales(ProductoComexResultado productoComexResultado,
			List<ProductoComexResultado> listaPComexResult) throws Exception {

		for (ProductoComexResultado bRelacPaisResIter : listaPComexResult) {
			for(ProductoComexResumen bRelacPaisDetaIter: bRelacPaisResIter.getLstProductoComexResultado())
			{
				productoComexResultado.setTotalmes1SBOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes1SBOper(), bRelacPaisDetaIter.getRango1sbOper()));
				productoComexResultado.setTotalmes1SBMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes1SBMonto(), bRelacPaisDetaIter.getRango1sbMonto()));
				productoComexResultado.setTotalmes1oOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes1oOper(), bRelacPaisDetaIter.getRango1sbopOper()));
				productoComexResultado.setTotalmes1oMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes1oMonto(), bRelacPaisDetaIter.getRango1sbopMonto()));
				productoComexResultado.setTotalmes2SBOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes2SBOper(), bRelacPaisDetaIter.getRango2sbOper()));
				productoComexResultado.setTotalmes2SBMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes2SBMonto(), bRelacPaisDetaIter.getRango2sbMonto()));
				productoComexResultado.setTotalmes2oOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes2oOper(), bRelacPaisDetaIter.getRango2sbopOper()));
				productoComexResultado.setTotalmes2oMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes2oMonto(), bRelacPaisDetaIter.getRango2sbopMonto()));
				productoComexResultado.setTotalmes3SBOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes3SBOper(), bRelacPaisDetaIter.getRango3sbOper()));
				productoComexResultado.setTotalmes3SBMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes3SBMonto(), bRelacPaisDetaIter.getRango3sbMonto()));
				productoComexResultado.setTotalmes3oOper(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes3oOper(), bRelacPaisDetaIter.getRango3sbopOper()));
				productoComexResultado.setTotalmes3oMonto(ITradexUtil.addBigDecimal(productoComexResultado.getTotalmes3oMonto(), bRelacPaisDetaIter.getRango3sbopMonto()));
			}
		}
	}
	
	@Override
	public void setearTotalesComparable(
			ProductoComexComparableResultado prodComexComp,
			List<ProductoComexComparableResultado> listaPComexComparableResult)
			throws Exception {
		if(listaPComexComparableResult != null){
			for (ProductoComexComparableResultado bRelacPaisResIter : listaPComexComparableResult) {
				for(ProductoComexComparableResumen bRelacPaisDetaIter: bRelacPaisResIter.getLstProductoComexComparableResultado()){
					prodComexComp.setTotalmes1SBOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes1SBOper(), bRelacPaisDetaIter.getRango1sbOper()));
					prodComexComp.setTotalmes1SBMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes1SBMonto(), bRelacPaisDetaIter.getRango1sbMonto()));
					prodComexComp.setTotalmes1oOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes1oOper(), bRelacPaisDetaIter.getRango1sbopOper()));
					prodComexComp.setTotalmes1oMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes1oMonto(), bRelacPaisDetaIter.getRango1sbopMonto()));
					prodComexComp.setTotalmes2SBOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes2SBOper(), bRelacPaisDetaIter.getRango2sbOper()));
					prodComexComp.setTotalmes2SBMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes2SBMonto(), bRelacPaisDetaIter.getRango2sbMonto()));
					prodComexComp.setTotalmes2oOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes2oOper(), bRelacPaisDetaIter.getRango2sbopOper()));
					prodComexComp.setTotalmes2oMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes2oMonto(), bRelacPaisDetaIter.getRango2sbopMonto()));
					prodComexComp.setTotalmes3SBOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes3SBOper(), bRelacPaisDetaIter.getRango3sbOper()));
					prodComexComp.setTotalmes3SBMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes3SBMonto(), bRelacPaisDetaIter.getRango3sbMonto()));
					prodComexComp.setTotalmes3oOper(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes3oOper(), bRelacPaisDetaIter.getRango3sbopOper()));
					prodComexComp.setTotalmes3oMonto(ITradexUtil.addBigDecimal(prodComexComp.getTotalmes3oMonto(), bRelacPaisDetaIter.getRango3sbopMonto()));
					prodComexComp.setTotalvarInicial(ITradexUtil.addBigDecimal(prodComexComp.getTotalvarInicial(), bRelacPaisDetaIter.getVarRango1Rango2()));
					prodComexComp.setTotalvarFinal(ITradexUtil.addBigDecimal(prodComexComp.getTotalvarFinal(), bRelacPaisDetaIter.getVarRango2Rango3()));
				}
			}
		}
	}

	private List<ProductoComexResultado> formatListResumenPComex(
			List<ProductoComexResumen> listResumenProductoComexImp) {
		
		List<ProductoComexResultado> lstCProductoResultado = null;
		List<ProductoComexResumen> listaClaves = new ArrayList<ProductoComexResumen>();
		
		if (listResumenProductoComexImp != null) {
			lstCProductoResultado = new ArrayList<ProductoComexResultado>();

			BigDecimal rango1sbOper = new BigDecimal(0);
			BigDecimal rango1sbMonto = new BigDecimal(0);
			BigDecimal rango1sbopOper = new BigDecimal(0);
			BigDecimal rango1sbopMonto = new BigDecimal(0);
			BigDecimal rango2sbOper = new BigDecimal(0);
			BigDecimal rango2sbMonto = new BigDecimal(0);
			BigDecimal rango2sbopOper = new BigDecimal(0);
			BigDecimal rango2sbopMonto = new BigDecimal(0);
			BigDecimal rango3sbOper = new BigDecimal(0);
			BigDecimal rango3sbMonto = new BigDecimal(0);
			BigDecimal rango3sbopOper = new BigDecimal(0);
			BigDecimal rango3sbopMonto = new BigDecimal(0);
			
			ProductoComexResumen tmpCRelacPaisDetSig = new ProductoComexResumen();

			for(int i = 0; i < listResumenProductoComexImp.size(); i++) {
				ProductoComexResumen cRelacPaisDetalle = listResumenProductoComexImp.get(i);
				
				if (i < (listResumenProductoComexImp.size() - 1))
					tmpCRelacPaisDetSig = listResumenProductoComexImp.get(i + 1);

				rango1sbOper = ITradexUtil.addBigDecimal(rango1sbOper, cRelacPaisDetalle.getRango1sbOper());
				rango1sbMonto = ITradexUtil.addBigDecimal(rango1sbMonto, cRelacPaisDetalle.getRango1sbMonto());
				rango1sbopOper = ITradexUtil.addBigDecimal(rango1sbopOper, cRelacPaisDetalle.getRango1sbopOper()) ;
				rango1sbopMonto = ITradexUtil.addBigDecimal(rango1sbopMonto, cRelacPaisDetalle.getRango1sbopMonto());
				rango2sbOper =  ITradexUtil.addBigDecimal(rango2sbOper, cRelacPaisDetalle.getRango2sbOper());
				rango2sbMonto = ITradexUtil.addBigDecimal(rango2sbMonto, cRelacPaisDetalle.getRango2sbMonto()); 
				rango2sbopOper = ITradexUtil.addBigDecimal(rango2sbopOper, cRelacPaisDetalle.getRango2sbopOper()); 
				rango2sbopMonto = ITradexUtil.addBigDecimal(rango2sbopMonto, cRelacPaisDetalle.getRango2sbopMonto()); 
				rango3sbOper = ITradexUtil.addBigDecimal(rango3sbOper, cRelacPaisDetalle.getRango3sbOper()); 
				rango3sbMonto = ITradexUtil.addBigDecimal(rango3sbMonto, cRelacPaisDetalle.getRango3sbMonto()); 
				rango3sbopOper = ITradexUtil.addBigDecimal(rango3sbopOper, cRelacPaisDetalle.getRango3sbopOper()); 
				rango3sbopMonto = ITradexUtil.addBigDecimal(rango3sbopMonto, cRelacPaisDetalle.getRango3sbopMonto());
				
				listaClaves.add(cRelacPaisDetalle);

				String producto = Constantes.VACIO;
				String productoSig = Constantes.VACIO;
				if(cRelacPaisDetalle.getProducto() != null && cRelacPaisDetalle.getProducto().trim().length() > 1){
					producto = cRelacPaisDetalle.getProducto().trim().substring(0, 2);
				}
				if(tmpCRelacPaisDetSig.getProducto() != null && tmpCRelacPaisDetSig.getProducto().trim().length() > 1){
					productoSig = tmpCRelacPaisDetSig.getProducto().trim().substring(0, 2);
				}
				
				if (!producto.equals(productoSig) || i == (listResumenProductoComexImp.size() - 1)) {
					ProductoComexResultado cRelacPaisResultado = new ProductoComexResultado(
							cRelacPaisDetalle.getCodProducto(),producto, rango1sbOper, rango1sbMonto, rango1sbopOper,
							rango1sbopMonto, rango2sbOper, rango2sbMonto,
							rango2sbopOper, rango2sbopMonto, rango3sbOper,
							rango3sbMonto, rango3sbopOper, rango3sbopMonto);
					cRelacPaisResultado.setLstProductoComexResultado(listaClaves);
					lstCProductoResultado.add(cRelacPaisResultado);

					rango1sbOper = new BigDecimal(0);
					rango1sbMonto = new BigDecimal(0);
					rango1sbopOper = new BigDecimal(0);
					rango1sbopMonto = new BigDecimal(0);
					rango2sbOper = new BigDecimal(0);
					rango2sbMonto = new BigDecimal(0);
					rango2sbopOper = new BigDecimal(0);
					rango2sbopMonto = new BigDecimal(0);
					rango3sbOper = new BigDecimal(0);
					rango3sbMonto = new BigDecimal(0);
					rango3sbopOper = new BigDecimal(0);
					rango3sbopMonto = new BigDecimal(0);
					listaClaves = new ArrayList<ProductoComexResumen>();
				}
			}
		}
		return lstCProductoResultado;
	}
	
	private List<ProductoComexComparableResultado> formatListResumenPComexComp(
			List<ProductoComexComparableResumen> listResumenProductoComexImp) {
		
		List<ProductoComexComparableResultado> lstCProductoResultado = null;
		List<ProductoComexComparableResumen> listaClaves = new ArrayList<ProductoComexComparableResumen>();
		
		if (listResumenProductoComexImp != null) {
			lstCProductoResultado = new ArrayList<ProductoComexComparableResultado>();

			BigDecimal rango1sbOper = new BigDecimal(0);
			BigDecimal rango1sbMonto = new BigDecimal(0);
			BigDecimal rango1sbopOper = new BigDecimal(0);
			BigDecimal rango1sbopMonto = new BigDecimal(0);
			BigDecimal rango2sbOper = new BigDecimal(0);
			BigDecimal rango2sbMonto = new BigDecimal(0);
			BigDecimal rango2sbopOper = new BigDecimal(0);
			BigDecimal rango2sbopMonto = new BigDecimal(0);
			BigDecimal rango3sbOper = new BigDecimal(0);
			BigDecimal rango3sbMonto = new BigDecimal(0);
			BigDecimal rango3sbopOper = new BigDecimal(0);
			BigDecimal rango3sbopMonto = new BigDecimal(0);
			BigDecimal varRango1Rango2 = new BigDecimal(0);
			BigDecimal varRango2Rango3 = new BigDecimal(0);
			
			ProductoComexComparableResumen tmpCRelacPaisDetSig = new ProductoComexComparableResumen();

			for (int i = 0; i < listResumenProductoComexImp.size(); i++) {
				ProductoComexComparableResumen cRelacPaisDetalle = listResumenProductoComexImp.get(i);
				
				if (i < (listResumenProductoComexImp.size() - 1))
					tmpCRelacPaisDetSig = listResumenProductoComexImp.get(i + 1);

				rango1sbOper = ITradexUtil.addBigDecimal(rango1sbOper, cRelacPaisDetalle.getRango1sbOper());
				rango1sbMonto = ITradexUtil.addBigDecimal(rango1sbMonto, cRelacPaisDetalle.getRango1sbMonto());
				rango1sbopOper = ITradexUtil.addBigDecimal(rango1sbopOper, cRelacPaisDetalle.getRango1sbopOper()) ;
				rango1sbopMonto = ITradexUtil.addBigDecimal(rango1sbopMonto, cRelacPaisDetalle.getRango1sbopMonto());
				rango2sbOper =  ITradexUtil.addBigDecimal(rango2sbOper, cRelacPaisDetalle.getRango2sbOper());
				rango2sbMonto = ITradexUtil.addBigDecimal(rango2sbMonto, cRelacPaisDetalle.getRango2sbMonto()); 
				rango2sbopOper = ITradexUtil.addBigDecimal(rango2sbopOper, cRelacPaisDetalle.getRango2sbopOper()); 
				rango2sbopMonto = ITradexUtil.addBigDecimal(rango2sbopMonto, cRelacPaisDetalle.getRango2sbopMonto()); 
				rango3sbOper = ITradexUtil.addBigDecimal(rango3sbOper, cRelacPaisDetalle.getRango3sbOper()); 
				rango3sbMonto = ITradexUtil.addBigDecimal(rango3sbMonto, cRelacPaisDetalle.getRango3sbMonto()); 
				rango3sbopOper = ITradexUtil.addBigDecimal(rango3sbopOper, cRelacPaisDetalle.getRango3sbopOper()); 
				rango3sbopMonto = ITradexUtil.addBigDecimal(rango3sbopMonto, cRelacPaisDetalle.getRango3sbopMonto());
				varRango1Rango2 = ITradexUtil.addBigDecimal(varRango1Rango2, cRelacPaisDetalle.getVarRango1Rango2()); 
				varRango2Rango3 = ITradexUtil.addBigDecimal(varRango2Rango3, cRelacPaisDetalle.getVarRango2Rango3());
				
				listaClaves.add(cRelacPaisDetalle);

				String producto = Constantes.VACIO;
				String productoSig = Constantes.VACIO;
				if(cRelacPaisDetalle.getProducto() != null && cRelacPaisDetalle.getProducto().trim().length() > 1){
					producto = cRelacPaisDetalle.getProducto().trim().substring(0, 2);
				}
				if(tmpCRelacPaisDetSig.getProducto() != null && tmpCRelacPaisDetSig.getProducto().trim().length() > 1){
					productoSig = tmpCRelacPaisDetSig.getProducto().trim().substring(0, 2);
				}
				
				if (!producto.equals(productoSig) || i == (listResumenProductoComexImp.size() - 1)) {
					ProductoComexComparableResultado cRelacPaisResultado = new ProductoComexComparableResultado(
							cRelacPaisDetalle.getCodProducto(), rango1sbOper, rango1sbMonto, rango1sbopOper,
							rango1sbopMonto, rango2sbOper, rango2sbMonto,
							rango2sbopOper, rango2sbopMonto, rango3sbOper,
							rango3sbMonto, rango3sbopOper, rango3sbopMonto,varRango1Rango2, varRango2Rango3);
					
					cRelacPaisResultado.setLstProductoComexComparableResultado(listaClaves);
					lstCProductoResultado.add(cRelacPaisResultado);

					rango1sbOper = new BigDecimal(0);
					rango1sbMonto = new BigDecimal(0);
					rango1sbopOper = new BigDecimal(0);
					rango1sbopMonto = new BigDecimal(0);
					rango2sbOper = new BigDecimal(0);
					rango2sbMonto = new BigDecimal(0);
					rango2sbopOper = new BigDecimal(0);
					rango2sbopMonto = new BigDecimal(0);
					rango3sbOper = new BigDecimal(0);
					rango3sbMonto = new BigDecimal(0);
					rango3sbopOper = new BigDecimal(0);
					rango3sbopMonto = new BigDecimal(0);
					varRango1Rango2 = new BigDecimal(0);
					varRango2Rango3 = new BigDecimal(0);
					listaClaves = new ArrayList<ProductoComexComparableResumen>();
				}
			}
		}
		return lstCProductoResultado;
	}
	
	@Override
	public void generaPDFProductoComex(Integer impoExpo, FacesContext facesContext,
			List<ProductoComexResultado> listaPProductoResultImportaciones,
			List<ProductoComexComparableResultado> listaPProductoComparacionImportaciones,
			ProductoComexResultado totalProdComexImp,
			ProductoComexComparableResultado totalProdComexComparacionImp,
			ProductoComexBusquedaForm filtros,String[] arrStrMesesResumen,String[] arrStrAnioMesComparacion,
			List<DatosJFreeChart> lstChartTotalTransEmit,List<DatosJFreeChart> lstChartCredito,List<DatosJFreeChart> lstChartCobranza,String strTipoArchivoExportacion) throws Exception {
		Map<String,Object> parametros = new HashMap<String, Object>();
		String strNombrePDF = "ProdComex_";
		parametros.put("titulo","PRODUCTOS COMEX");
		if (impoExpo==Constantes.TIPO_IMPORTACION_VAL){
			parametros.put("expoImpo","IMPORTACIONES");
			strNombrePDF+="IMPO_";
		}
		else if(impoExpo==Constantes.TIPO_EXPORTACION_VAL){
			parametros.put("expoImpo","EXPORTACIONES");
			strNombrePDF+="EXPO_";
		}
		else if(impoExpo==Constantes.TIPO_IMPOEXPO_VAL){
			parametros.put("expoImpo","IMPORTACIONES Y EXPORTACIONES");
			strNombrePDF+="IMPOEXPO_";
		}
		for (int i = 0; i < arrStrMesesResumen.length; i++) {
			parametros.put("strMesResumen"+(i+1), arrStrMesesResumen[i]);
		}
		for (int i = 0; i < arrStrAnioMesComparacion.length; i++) {
			parametros.put("strAnioMesComparacion"+(i+1), arrStrAnioMesComparacion[i]);
		}
		parametros.put("listaPProductoResultImportaciones",listaPProductoResultImportaciones);
		parametros.put("listaPProductoComparacionImportaciones", listaPProductoComparacionImportaciones);
		parametros.put("strFilCompMes", filtros.getStrMes());
		parametros.put("strFilCompTipoComparacion", filtros.getStrTipoComparacion());
		parametros.put("totalProdComex", totalProdComexImp);
		parametros.put("totalProdComexComparacion", totalProdComexComparacionImp);
		
		parametros.put("chartTotalTransSerie", lstChartTotalTransEmit.get(0).getStrSeries());
		parametros.put("chartTotalTransCategoria1", lstChartTotalTransEmit.get(0).getStrCategoria());
		parametros.put("chartTotalTransValor1", lstChartTotalTransEmit.get(0).getIntValor());
		parametros.put("chartTotalTransCategoria2", lstChartTotalTransEmit.get(1).getStrCategoria());
		parametros.put("chartTotalTransValor2", lstChartTotalTransEmit.get(1).getIntValor());
		parametros.put("chartTotalTransCategoria3", lstChartTotalTransEmit.get(2).getStrCategoria());
		parametros.put("chartTotalTransValor3", lstChartTotalTransEmit.get(2).getIntValor());
		
		parametros.put("chartTotalCreditoSerie1", lstChartCredito.get(0).getStrSeries());
		parametros.put("chartTotalCreditoCategoria1", lstChartCredito.get(0).getStrCategoria());
		parametros.put("chartTotalCreditoValor1", lstChartCredito.get(0).getIntValor());
		
		parametros.put("chartTotalCreditoSerie2", lstChartCredito.get(1).getStrSeries());
		parametros.put("chartTotalCreditoCategoria2", lstChartCredito.get(1).getStrCategoria());
		parametros.put("chartTotalCreditoValor2", lstChartCredito.get(1).getIntValor());
		
		parametros.put("chartTotalCreditoSerie3", lstChartCredito.get(2).getStrSeries());
		parametros.put("chartTotalCreditoCategoria3", lstChartCredito.get(2).getStrCategoria());
		parametros.put("chartTotalCreditoValor3", lstChartCredito.get(2).getIntValor());
		
		parametros.put("chartTotalCobranzaSerie1", lstChartCobranza.get(0).getStrSeries());
		parametros.put("chartTotalCobranzaCategoria1", lstChartCobranza.get(0).getStrCategoria());
		parametros.put("chartTotalCobranzaValor1", lstChartCobranza.get(0).getIntValor());
		
		parametros.put("chartTotalCobranzaSerie2", lstChartCobranza.get(1).getStrSeries());
		parametros.put("chartTotalCobranzaCategoria2", lstChartCobranza.get(1).getStrCategoria());
		parametros.put("chartTotalCobranzaValor2", lstChartCobranza.get(1).getIntValor());
		
		parametros.put("chartTotalCobranzaSerie3", lstChartCobranza.get(2).getStrSeries());
		parametros.put("chartTotalCobranzaCategoria3", lstChartCobranza.get(2).getStrCategoria());
		parametros.put("chartTotalCobranzaValor3", lstChartCobranza.get(2).getIntValor());
				
		strNombrePDF=strNombrePDF+filtros.getStrTipoComparacion()+"_"+filtros.getStrMes()+"_"+
				ITradexUtil.convertUtilDateToString(new Date(), Constantes.FORMAT_DATE_MM_DD_yyyy);
		
		if (strTipoArchivoExportacion.equals(Constantes.TIPO_ARCHIVO_EXPORTACION_PDF)){
			ITradexUtil.exportPDFEmptyDS(parametros, "/xmlReport/producto/productoComex.jasper",strNombrePDF);	
		}else if(strTipoArchivoExportacion.equals(Constantes.TIPO_ARCHIVO_EXPORTACION_XLS)){
			ITradexUtil.exportXLSJasperEmptyDS(parametros, "/xmlReport/producto/productoComex_Excel.jasper",strNombrePDF);
		}
	}
}